package wcg;

import ikelib.ChannelData;
import ikelib.wintime;

import java.util.LinkedList;
import java.util.TreeMap;


public class ChannelDataCollection {
	private TreeMap<Integer,ChannelData> ChDat = new TreeMap<Integer,ChannelData>();
	ChannelDataCollection(){
	}
	public void addChannelData(ChannelData d){
		int key=d.getTime().getValueS();
		ChDat.put(key,d);
	}
	/**
	 * ＜時刻、ChannelData>なChDatを得る。　時刻はwintime.getValueS()。
	 * @return
	 */
	public TreeMap<Integer,ChannelData> getChannelData(){
		return ChDat;
	}
	/**
	 * 時刻[s]を指定してデータ(ChannelData)を得る　
	 * @param tm
	 * @return
	 *  ChannelData
	 */
	public ChannelData getChannelData(wintime tm){
		return ChDat.get(tm.getValueS());
	}
	/**
	 * 時刻wintime と　spansec（秒）を指定してデータ（のリスト）を得る
	 * @param tm wintime スタートタイム
	 * @param spansec　スタートタイムからの時間
	 * @return　LinkedList<int[]> 
	 */
	public LinkedList<int[]> getChannelData(wintime tm , int spansec){
		LinkedList<int[]> ret = new LinkedList<int[]>();
		wintime wt = new wintime(tm);
		for(int i=0;i<spansec;i++){
			ChannelData d = getChannelData(wt);
			if(d==null) return null;
			ret.add(d.getData());
			wt.inc_sec();
		}
		return ret;
	}
}
